home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 1.iso / ARGONET / PD / EMULATOR / FRODO.ZIP / !Help
Text File  |  1997-05-25  |  20KB  |  545 lines

  1. FRODO FOR ACORN RISC OS
  2. =======================
  3.  
  4.  
  5.  
  6.  
  7. This is the Acorn port of the C64 Emulator Frodo. General information and
  8. legal issues are included in the Docs directory, this file deals with the
  9. RISC OS aspects only.
  10.  
  11.  
  12.  
  13.  
  14. System Requirements:
  15. ====================
  16.  
  17. Frodo needs a WimpSlot of about 1376k, FrodoSC manages with 832k. Both
  18. require RISC OS 3 and a lot of processing power. Although they should
  19. in theory run on any machine with enough RAM and a recent enough OS the
  20. minimum spec where Frodo is _halfway_ usable is an A5000, FrodoSC should
  21. be usable on a StrongARM only. If you want full frame rate and sound
  22. you'll need a StrongARM even for Frodo. This is due to Frodo being
  23. written in C++ so you really can't expect it to be as fast as the
  24. Breadbox, for instance. Thus this is basically RiscPC only, StrongARM
  25. _strong_ly recommended. Any joker out there with an ARM2 or 250 complaining
  26. about the speed will feel my foot where mommy put the thermometer.
  27.  
  28.  
  29.  
  30.  
  31.  
  32. Using Frodo:
  33. ============
  34.  
  35. Simply start Frodo(SC) by double-clicking on its filer icon (the filer must
  36. have seen the shared resources of Frodo and FrodoSC first!). Frodo will
  37. install itself on the icon bar and open the emulation window (yes dudes,
  38. Frodo is multitasking). You should know how to use a C64 from now on
  39. because I won't start a course on that!
  40.  
  41.  
  42.  
  43.  
  44. Configuration:
  45. ==============
  46.  
  47. There are two configuration windows:
  48.  
  49. a) The Preferences window: deals with all system-independent configurations.
  50.    See the file "settings" in the Docs directory for more information.
  51.    You can set drive paths by dragging the object in question (a directory,
  52.    a D64- or a T64-image) onto the respective (writable) path icon. Frodo
  53.    will automatically try setting the drive emulation mode accordingly.
  54.    The reason the Preferences window is so big is that everything covered
  55.    there is in a class in Frodo, so regarding portability and unwanted
  56.    side-effects I decided to represent it as a unit rather than splitting
  57.    it up.
  58.  
  59. b) The System Configuration window deals with system-specific aspects of
  60.    the emulator. You can enter the keys used for the keyboard joystick
  61.    here as well as timing aspects. The entries are
  62.  
  63.    Poll After:    Number of centiseconds after which the WIMP should be
  64.            polled. This is never exact because the check whether
  65.            to poll is only done after an entire frame has been built.
  66.  
  67.    Speed After:    Number of centiseconds after which the Speedometer should
  68.            be updated. Don't use too small values because centiseconds
  69.            are basically too coarse a unit for something like this. Like
  70.            Poll After the check is made only once per frame.
  71.  
  72.    Poll Sound Lines: Number of rasterlines after which the sound system
  73.            should be polled to determine whether a new sample is
  74.            needed. For more see "Sound".
  75.  
  76.    Joystick Keys: You have to place the mouse pointer over the corresponding
  77.            icon and press the key you wish to use for this until you
  78.            see the icon change. For more see "Keyboard Joysticks"
  79.  
  80.  
  81. In both windows changes are only passed on to the emulator if you click OK
  82. or "save" (if present), drag the filer-sprite to a valid destination window
  83. or press return in the file-path icon (the only exception is "Skip Frames").
  84. "Cancel" in the "Preferences"-window will update the window with the currently
  85. used settings. This is done with the System Configuration window every time
  86. it's opened (i.e. to retrieve the current settings simply close the window and
  87. re-open it). You can activate new settings in both cases by dragging the
  88. corresponding files onto the window in question.
  89.  
  90.  
  91.  
  92.  
  93. Sound:
  94. ======
  95.  
  96. Sound is off by default. Switch it on from the Preferences window (SID Type).
  97.  
  98. Frodo uses a polling system to playback samples. "Poll Sound Lines" determines
  99. how often it should poll. If you don't poll enough (i.e. your machine is too
  100. slow) sample buffers will overflow, creating a discontinuity in the sound.
  101. The size of the sound buffer and the sample rate (22050Hz) are chosen in such
  102. a way that the polling has to be done every 2cs to avoid buffer overflows.
  103. Polling costs a little extra compared to an IRQ-oriented approach but it's
  104. the only way for a multitasking RISC OS-application which is mapped out between
  105. (WIMP) Polls. In this particular case it acually has its upsides because you
  106. can determine yourself how good a sound you want and how much computing power
  107. you wish to give to synthesis. Frodo's sound emulation is rather sophisticated
  108. and thus needs a lot of power; but if all you do is play some shoot'em up
  109. with laser-sounds overflowing sample buffers won't be all that noticable so
  110. you can get a rather good approximation by polling once per frame (every
  111. 312 lines).
  112. If you want to make sure no buffer overflow occurs you have to check how fast
  113. your computer can manage the emulation with sound enabled and SkipFrames=1.
  114. Then PollSoundLines = (speedometer percentage)*312/100 (i.e. for 100% speed
  115. once per frame). Buffer overflows can still occur during WIMP polls so if you
  116. want 100% accurate sound playback you have to force single tasking by pressing
  117. ScrollLock (see "Keyboard"). But unless you have a StrongARM I wouldn't use
  118. much sound at all.
  119.  
  120. The sound is known to work on a StrongARM RiscPC with the standard RO3.7 sound
  121. modules. It also works on an A5000 albeit very slowly.
  122.  
  123. You can alter the volume via the menus. A click on the volume bar will alter
  124. the volume immediately to that value, a drag will only alter the volume once
  125. it's completed.
  126.  
  127. Frodo for RISC OS uses 8 bit logarithmic samples. I don't have documentation
  128. about 16 bit linear and also have serious doubts it would make a hell of a lot
  129. of difference here.
  130.  
  131. Technical note:
  132.     The module "DigitalRenderer" provides the interface between Frodo's
  133.     sound system and RISC OS. Since Acorn's documentation of the DMA- and
  134.     Channel-Handlers is basically non-existant there might be problems
  135.     with future versions; if you experience problems try using older
  136.     versions of the modules "SoundChannels" and "SoundDMA". Sorry about
  137.     the inconvenience but I ABSOLUTELY REFUSE TO IMPLEMENT SOMETHING LIKE
  138.     THIS VIA VOICE GENERATORS!
  139.     Avoid activating new SoundDMA or SoundChannels modules while the
  140.     DigitalRenderer is active. You DON'T have to rmkill the DigitalRenderer
  141.     for this, but turn off sound emulation first, otherwise there might
  142.     be some confusion, although there shouldn't be any nasty crashes.
  143.     The DigitalRenderer module is documented in the resources directory.
  144.     It's registered and you may use it in your own programs.
  145.  
  146. More than one Frodo:
  147.     You can run more than one copy of Frodo / FrodoSC simultaneously. Only
  148.     one copy can have sound emulation enabled, though. But that much should
  149.     be obvious...
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157. Display and screen modes:
  158. =========================
  159.  
  160. The screen plotters are customized assembler jobs. Since I really have far better
  161. things to do than write thousands of drivers for all manner of exotic cases
  162. there are some restrictions:
  163.  
  164. - Modes with eigen_x > eigen_y are not supported (none of the standard modes fall
  165.   into that cathegory).
  166.  
  167. - In modes with eigen_y > eigen_x lines are left out rather than columns being
  168.   doubled. You can get the columns-doubled display by doubling the display size.
  169.   This mode will be rather slow, however, since I only optimised the plotters to
  170.   the full for square pixel modes.
  171.  
  172. So to run Frodo use a square pixel mode. If you still run non-square pixel modes
  173. your computer is probably much too slow for Frodo anyway. All colour-depths and
  174. resolutions are supported. 16 and 32 bpp modes will take longer to plot because
  175. colour-lookup couldn't be avoided there and of course we're seriously struggling
  176. for bandwidth there. The window will always be scaled to such a size that one
  177. (horizontal) pixel of the C64-image corresponds to <zoom_factor> pixels of the
  178. screen. Thus the display size is only dependent upon your physical pixels, not the
  179. eigen values.
  180.  
  181. The reason SkipFrames affects the emulation speed so much lies not with my
  182. plotters (which are more or less as fast as possible) but with Frodo being
  183. intelligent enough not to build a frame if it won't be displayed anyway.
  184.  
  185. If you switch to a screen-mode with a different colour-depth you'll notice that
  186. the image Frodo plots looks completely off. The reason is that the frame stored
  187. internally is still calculated for the previous mode. Only when the next frame
  188. is built does the image revert to normal. Usually you should hardly notice this,
  189. but it's clearly visible if Frodo is paused. This is not a bug.
  190.  
  191.  
  192.  
  193.  
  194. Keyboard:
  195. =========
  196.  
  197. I implemented the keyboard emulation on a low-level basis. That way you can
  198. emulate more than one key being pressed at the same time. The downside of this is
  199. that the host machine's key-buffering cannot be used, so you have to keep a
  200. key pressed until the emulator recognizes it. This becomes frighteningly apparent
  201. in FrodoSC.
  202. The emulator window needs the input focus for keys to be passed to the emulator.
  203. The keyboard layout is basically like a real C64's; some keys had to be remapped,
  204. though.
  205.  
  206.  
  207. C64 keys:
  208. ---------
  209.  
  210. Alt        - CBM
  211. "="        - "=" (Remapped? Yes. On a real C64 this would be "+")
  212. "\"        - <Arrow up>
  213. Insert        - <Insert> (shift+del)
  214. Delete        - Guess...
  215. Home        - Ditto. (with shift: <Clear>)
  216. Esc, Break    - <Run/Stop>
  217. num"+", num"-"    - "+", "-"
  218. F1-F4        - F1, F3, F5, F7 (like on a real C64 you get F2, F4, F6, F8 by
  219.           pressing shift);
  220.  
  221. Everything else should be obvious.
  222.  
  223.  
  224. Frodo control keys:
  225. -------------------
  226.  
  227. F5        - Toggle sound emulation (between None and Digital)
  228. F6        - Enter SAM
  229. F7        - "Restore"
  230. F8        - Issue Reset
  231.  
  232. PageUp        - Increase SkipFrames
  233. PageDown    - Decrease SkipFrames
  234.  
  235. num"/"        - Toggle 1541 emulation state
  236. num"*"        - Toggle speed limiter
  237.  
  238. numLock        - Toggle keyboard joystick mapping
  239. ScrollLock    - "on": make Frodo single-task, i.e. it takes over the machine
  240.           and doesn't poll any more. "off": multitask (default). This
  241.           will only work if Frodo is not paused.
  242.  
  243.  
  244. If the emulator window has the input focus only F9-F12 with combinations of
  245. Shift and Ctrl are passed on to other WIMP tasks. Everything else is claimed
  246. by the emulator.
  247.  
  248.  
  249. Keyboard Joysticks:
  250. ===================
  251.  
  252. Two joysticks are supported. If numLock is on only Joystick 1 is active and
  253. mapped to port 2. If numLock is off Joystick 1 is mapped to port 1, Joystick
  254. 2 becomes active and gets mapped to port 2. Default settings are
  255.  
  256.  
  257. Joystick 1:
  258. -----------
  259.  
  260. num"1"        - Keyboard joystick left
  261. num"2"        - right
  262. num"3"        - up
  263. num"."        - down
  264. num<enter>    - fire
  265.  
  266.  
  267. Joystick 2:
  268. -----------
  269.  
  270. "z"        - left
  271. "x"        - right
  272. "f"        - up
  273. "c"        - down
  274. "g"        - fire
  275.  
  276.  
  277. The settings can be changed in the Configuration window. Place the mousepointer
  278. over the icon for the joystick's direction and press the key you wish to
  279. map it to until it's recognized (this is a low-level key scan). Avoid mapping
  280. the cursor-keys or any of the Frodo control keys (see above). The <Break>-
  281. key is a special case: it maps the key to 255 which means "no mapping". This
  282. can be used to turn a keyboard-joystick off (if for instance you need only
  283. a joystick in port 1).
  284. Since there are internal keynumbers for the mouse buttons you can also define
  285. the mouse buttons as keyboard joysticks! This might be nice for some games
  286. that only use three directions (like left/right and up). Since this would lead
  287. to all sorts of events being triggered in multitasking mode you have to go
  288. singletasking in that case. Frodo will clear the mouse buffer when multitasking
  289. is resumed so no matter what you click during singletasking, there won't be
  290. a cascade of mouse clicks reported afterwards.
  291.  
  292. The "Joystick Swap"-entry in the Preferences window does not affect keyboard
  293. joysticks. Use numLock for that.
  294.  
  295.  
  296.  
  297.  
  298. Real Joysticks:
  299. ===============
  300.  
  301. The Acorn joystick interface is supported. You have to make sure the driver
  302. modules are loaded before Frodo is started. Apart from that the joysticks have
  303. to be activated from the Preferences Window. If Frodo is already running at the
  304. time you're loading the joystick driver modules you can still use joysticks if
  305. you first disable, then enable joysticks from the Preferences window (don't forget
  306. clicking OK after both operations).
  307. The "Joystick Swap"-entry in the Preferences window applies to _real_ joysticks
  308. only.
  309.  
  310.  
  311.  
  312.  
  313.  
  314. Loading files:
  315. ==============
  316.  
  317. Apart from the usual "LOAD..."-commands you can also load native C64 files (the
  318. filetype is usally &064 as used by Breadbox) by dragging them onto the emulator
  319. window. You can't avoid typing a "RUN" in the emulator window.
  320.  
  321.  
  322.  
  323.  
  324. 1541 Emulation:
  325. ===============
  326.  
  327. This is usually a waste of time in Frodo since Fastloaders won't work then either
  328. (although there are some exceptions like for instance Hawkeye which will run OK
  329. with Frodo + 1541 emulation ONCE THE ENTIRE GAME HAS BEEN LOADED, i.e. the levels
  330. get loaded OK.)
  331. In FrodoSC it works very well and most Fastloaders will work OK. Of course
  332. emulating C64 and 1541 on a single cycle basis is slooooooow!
  333. If you activate 1541 emulation the emulator will "hang" for a little while during
  334. which the drive is reset. Apart from that the LEDs for drives 9-11 will be greyed
  335. out. Even simple operations like loading a directory will take considerably longer;
  336. it's not broken, just wait for it! You shouldn't access the drive while it's still
  337. resetting (you can see when the drive becomes idle by watching the speedometer).
  338.  
  339.  
  340.  
  341.  
  342.  
  343. Drive Emulation:
  344. ================
  345.  
  346. RISC OS users can also use D64 images in DIR mode if they have D64FS loaded. The
  347. advantage: you also have write-access that way -- the D64 drive emulation in the
  348. current version of Frodo is read-only. Also I have a D64 image that doesn't work
  349. OK in D64 mode but does in DIR mode with D64FS.
  350.  
  351.  
  352.  
  353.  
  354.  
  355. Setting drive paths:
  356. ====================
  357.  
  358. There are two ways to make images (D64 / T64) or directories accessible through
  359. one of the four drives:
  360.  
  361. 1) Drag the image/directory to the writable path icons in the preferences window,
  362.    set the emulation mode (Frodo will try ruling out silly combinations like
  363.    running a directory in D64 mode) and click OK.
  364.    
  365. 2) Drag the image/directory to the drive icons in the emulator pane. This will
  366.    update Frodo's configuration immediately, you don't have to press OK in the
  367.    Prefs window or anything. The disadvantage is that the wrong drive emulation
  368.    mode might be chosen (i.e. the previous one), so make sure you have the right
  369.    type chosen for the drive before you do this.
  370.    
  371. If you have 1541 emulation enabled I strongly advise you to NEVER change the
  372. drive path unless the program specifically tells you to.
  373.  
  374.  
  375.  
  376.  
  377.  
  378. Speedometer:
  379. ============
  380.  
  381. Obviously this shows the speed of the emulation compared to a real C64. The border
  382. type indicates whether the speed limiter is on or off: slab in means off (default),
  383. slab out means on. It's also clickable, i.e. clicking on it will toggle the speed
  384. limiter state.
  385.  
  386.  
  387.  
  388.  
  389.  
  390. SAM:
  391. ====
  392.  
  393. SAM can't be called when Frodo is in single tasking mode. Unfortunately no Task
  394. Window can be used for this and I sure as hell won't rewrite SAM so you'll have
  395. to put up with a non-multitasking VDU4-type window. Most of you won't ever use
  396. SAM anyway.
  397.  
  398.  
  399.  
  400.  
  401. REU:
  402. ====
  403.  
  404. This is a RAM extension unit. I have no idea how to use it (they must have come
  405. up after my 8bit time...). The important thing is that activating a REU will
  406. claim memory (of approcimately the size of the REU) so if you're low on memory
  407. Frodo might fail and abort. So don't toy around with this in memory-tight
  408. situations when aborting would lead to data loss.
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417. ADDITIONS TO FRODO 4.0:
  418. =======================
  419.  
  420.  
  421. The Save RAM-entry:
  422. -------------------
  423.  
  424. This is NOT a snapshot facility; but sometimes I find it rather useful to read the
  425. C64's RAM. The first 64kB of the file are the normal 64kB RAM of the virtual C64,
  426. the next 1024 bytes are the colour-RAM. If 1541 emulation was enabled the next
  427. 2048 bytes will be the 1541 RAM.
  428.  
  429.  
  430.  
  431. The Snapshot-entry:
  432. -------------------
  433.  
  434. This will make a snapshot of the current emulation state. Or to be more precise,
  435. the emulation is continued unto the next vertical sync, then the emulation state
  436. is saved. Therefore if you make a snapshot from a paused emulator it will resume
  437. operation first!
  438. I'm not all that sure what I have to save and what not, quite frankly; but I seem
  439. to have guessed rather well since everything I tried so far appears to work. One
  440. of the most important issues to me was to make snapshots of Frodo and FrodoSC
  441. work with either variant (i.e. you can run FrodoSC to satisfy a Fastloader, make
  442. a snapshot when it's done and actually use the program with Frodo). That too is
  443. not exactly trivial but it seems to work as well. Just don't make snapshots during
  444. disk-operations! And unless you have 1541 emulation enabled you have to restore
  445. the drive paths by hand because they're not saved in the snapshot.
  446. The snapshot files might be system-dependent in their current form. The reason
  447. is that on a number of occasions I dump an entire struct to file; the alignment
  448. within the struct might differ on various machines. But since Snapshots are
  449. only available on RISC OS at the moment it's hard to tell.
  450.  
  451. IMPORTANT NOTE:
  452.     If you save a snapshot with 1541 emulation enabled the resulting
  453.     snapshot will contain the pathname of the D64 image that was selected
  454.     at the time. If the location (or the path syntax) of this file changes
  455.     you have to change the snapshot file as well. One possibility would be
  456.     to just load the snapshot, ignoring the error, selecting the correct D64
  457.     image by hand, then making a new snapshot. The other would be changing the
  458.     pathname in the snapshot directly. It's stored in a 256 byte block in the
  459.     last 3kB of the file. You have to make sure you use overwrite-mode (DON'T
  460.     CHANGE THE SIZE OF THE SNAPSHOT FILE!!!) and terminate the name with a 0.
  461.  
  462. How to load a snapshot? Just drag the file onto the emulator window. These are,
  463. after all, not the dark ages...
  464.  
  465. Should you get a scrambled screen after loading a snapshot (I think I got that
  466. problem under control now but "never say never...") you can usually cure that by
  467. loading the snapshot again (without doing a reset or anything, just drag it onto
  468. the emulator window again). I don't think this should happen any more but just
  469. in case...
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477. THANKS:
  478. =======
  479.  
  480. - Christian Bauer for writing Frodo - a truly excellent emulator.
  481. - Richard G. Hallas for testing, suggestions and drawing additional icons.
  482. - Nick Burrett for porting GCC ;-)
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491. LEGAL ISSUES:
  492. =============
  493.  
  494. The source code I wrote during the Frodo port can be downloaded from the Frodo
  495. homepage (when Christian Bauer gets around to adding it). It falls into the same
  496. cathegory as the other bits of Frodo source code -- see "legalmush" in the Docs
  497. directory.
  498. One thing that does NOT fall into that cathegory are the screen plotters. These
  499. are only provided in the form of an object file, no source code. You may not use
  500. them in ANY program but Frodo, commercial or otherwise, without my explicit
  501. permission!
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510. Now enjoy!
  511.  
  512.  
  513.  
  514.  
  515.  
  516. Contact:
  517. --------
  518.  
  519. Andreas Dehmel
  520. Am Schorn 18
  521. 82327 Tutzing
  522. Germany
  523.  
  524. email:    dehmel@informatik.tu-muenchen.de
  525.     (but since I graduated last fall this account will run out soon;
  526.     any Acorn-related jobs for a CS-graduate out there?)
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535. "Everybody's doin' the Toxic Waltz
  536.  Kick your friend in the head and have a ball
  537.  Come on and do the Toxic Waltz
  538.  And slam your partner against the wall
  539.  Everybody's doin' the Toxic Waltz
  540.  Good friendly violent fun in store for all
  541.  Get up off your ass and Toxic Waltz
  542.  If you hit the floor you can always crawl!"
  543.  
  544.         (Exodus - The Toxic Waltz)
  545.